←Select platform

EncodeAbic(byte[],int,int,int,bool) Method

Summary

Encodes the input raw data using the ABIC encoder.

Syntax
C#
VB
C++
Java
public byte[] EncodeAbic( 
   byte[] inputData, 
   int align, 
   int width, 
   int height, 
   bool biLevel 
) 
Public Overloads Function EncodeAbic( _ 
   ByVal inputData() As Byte, _ 
   ByVal align As Integer, _ 
   ByVal width As Integer, _ 
   ByVal height As Integer, _ 
   ByVal biLevel As Boolean _ 
) As Byte() 
public byte[] encodeAbic(byte[] inputData, int align, int width, int height, boolean biLevel) 
public: 
array<byte>^ EncodeAbic(  
   array<byte>^ inputData, 
   int align, 
   int width, 
   int height, 
   bool biLevel 
)  

Parameters

inputData
A byte array which contains the input data.

align
Number of bytes aligned for uncompressed input data.

width
Image width, in pixels.

height
Image height, in pixels.

biLevel
true to indicate bi-level encoding, false to indicate 4-bit grayscale encoding.

Return Value

A byte array that contains the ABIC encoded data.

Remarks

Call this method to compress the input raw data to 1-bit bi-level or 4-bit grayscale ABIC data.

Use DecodeAbic to decode ABIC data.

Example

This example will load a file and encode as as ABIC. Decodes the data again before saving it to a destination file

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Color; 
using Leadtools.Svg; 
using LeadtoolsExamples.Common; 
 
public void EncodeDecodeAbicExample() 
{ 
   RasterCodecs codecs = new RasterCodecs(); 
 
   string srcFileName = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp"); 
   string destDataFile = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Abic.bmp"); 
 
   // Load the file save it to a memory stream as RAW 
   Console.WriteLine("Loading the source image as 1 bits/pixel"); 
   RasterImage srcImage = codecs.Load(srcFileName, 1, CodecsLoadByteOrder.Rgb, 1, 1); 
 
   Console.WriteLine("Saving the image to memory as RAW format"); 
   MemoryStream ms = new MemoryStream(); 
   codecs.Save(srcImage, ms, RasterImageFormat.Raw, srcImage.BitsPerPixel); 
 
   Console.WriteLine("Encoding the data as ABIC"); 
   byte[] rawData = ms.GetBuffer(); 
   ms.Close(); 
 
   // Encode this data as ABIC 
   byte[] abicData = codecs.EncodeAbic(rawData, 4, srcImage.Width, srcImage.Height, false); 
 
   // Decode the data back to RAW 
   Console.WriteLine("Deconding the data back as RAW"); 
   rawData = codecs.DecodeAbic(abicData, 4, srcImage.Width, srcImage.Height, false); 
 
   // Create a new image from this data 
   RasterImage destImage = new RasterImage( 
      RasterMemoryFlags.Conventional, 
      srcImage.Width, 
      srcImage.Height, 
      srcImage.BitsPerPixel, 
      srcImage.Order, 
      srcImage.ViewPerspective, 
      srcImage.GetPalette(), 
      IntPtr.Zero, 
      0); 
 
   // Add the scan lines 
   for (int y = 0; y < destImage.Height; y++) 
   { 
      int bufferIndex = y * destImage.BytesPerLine; 
      destImage.SetRow(y, rawData, bufferIndex, destImage.BytesPerLine); 
   } 
 
   // Save this image to disk 
   codecs.Save(destImage, destDataFile, RasterImageFormat.Bmp, destImage.BitsPerPixel); 
 
   srcImage.Dispose(); 
   destImage.Dispose(); 
 
   // Clean up 
   codecs.Dispose(); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing 
Imports Leadtools.ImageProcessing.Color 
Imports Leadtools.Drawing 
Imports Leadtools.Svg 
 
Public Sub EncodeDecodeAbicExample() 
   Dim codecs As RasterCodecs = New RasterCodecs() 
 
   Dim srcFileName As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp") 
   Dim destDataFile As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1_Abic.bmp") 
 
   ' Load the file save it to a memory stream as RAW 
   Console.WriteLine("Loading the source image as 1 bits/pixel") 
   Dim srcImage As RasterImage = codecs.Load(srcFileName, 1, CodecsLoadByteOrder.Rgb, 1, 1) 
 
   Console.WriteLine("Saving the image to memory as RAW format") 
   Dim ms As MemoryStream = New MemoryStream() 
   codecs.Save(srcImage, ms, RasterImageFormat.Raw, srcImage.BitsPerPixel) 
 
   Console.WriteLine("Encoding the data as ABIC") 
   Dim rawData As Byte() = ms.GetBuffer() 
   ms.Close() 
 
   ' Encode this data as ABIC 
   Dim abicData As Byte() = codecs.EncodeAbic(rawData, 4, srcImage.Width, srcImage.Height, False) 
 
   ' Decode the data back to RAW 
   Console.WriteLine("Deconding the data back as RAW") 
   rawData = codecs.DecodeAbic(abicData, 4, srcImage.Width, srcImage.Height, False) 
 
   ' Create a new image from this data 
   Dim destImage As RasterImage = New RasterImage(RasterMemoryFlags.Conventional, srcImage.Width, srcImage.Height, srcImage.BitsPerPixel, srcImage.Order, srcImage.ViewPerspective, srcImage.GetPalette(), IntPtr.Zero, 0) 
 
   ' Add the scan lines 
   Dim y As Integer = 0 
   Do While y < destImage.Height 
      Dim bufferIndex As Integer = y * destImage.BytesPerLine 
      destImage.SetRow(y, rawData, bufferIndex, destImage.BytesPerLine) 
      y += 1 
   Loop 
 
   ' Save this image to disk 
   codecs.Save(destImage, destDataFile, RasterImageFormat.Bmp, destImage.BitsPerPixel) 
 
   srcImage.Dispose() 
   destImage.Dispose() 
 
   ' Clean up 
   codecs.Dispose() 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Codecs Assembly